package com.yxinsur.imc.business.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.yxinsur.imc.common.annotation.Excel;
import com.yxinsur.imc.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.ToString;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.math.BigDecimal;
import java.util.Date;

/**
 * 保单对象 imc_order
 *
 * @author imc
 * @date 2021-03-18
 */
@Data
@ToString
public class OrderVo
{
    private static final long serialVersionUID = 1L;

    /** $column.columnComment */
    private Long id;

    /** 投保单号 */
    @Excel(name ="投保单号")
    private String proposalCode;

    /** 保单号，合同号 */
    @Excel(name ="保单号")
    private String policyCode;

    /** 保单主状态 */
    @Excel(name ="保单状态",dictType = "risk_status_code")
    private String orderStatusCode;

    /** 代理人ID */
    private Long brokerId;

    /** 服务代理人姓名 */
    @Excel(name ="代理人")
    private String serviceBrokerName;

    /** 服务代理人工号 */
    @Excel(name ="代理人工号")
    private String serviceBrokerCode;

    /** 录单机构名称 */
    @Excel(name ="管理机构")
    private String inputOrgName;

    @Excel(name = "结算机构")
    private String settleOrgName;

    /** 直辖团队 */
    @Excel(name ="直辖团队")
    private String teamName;

    /** 所辖团队 */
    @Excel(name ="所辖团队")
    private String rootTeamName;

    /** 保险公司 供应商  */
    @Excel(name ="供应商名称")
    private String supplierName;

    /** 出单代理人姓名 */
    private String issueBrokerName;

    /** 出单代理人ID */
    private Long initBrokerId;

    /** 出单代理人工号 */
    private String issueBrokerCode;


    /** 保险公司 供应商  */
    private Long repoSupplierId;


    /** 录单机构名称 */
    private Long inputOrgId;

    //结算机构
    private Long settleOrgId;



    /** 保单主状态 */
    @Excel(name ="主险名称")
    private String riskName;

    /** 保单总保费 */
    @Excel(name ="首年保费")
    private BigDecimal firstPrem;

    /** 保单总标准保费 */
    @Excel(name ="首年标保")
    private BigDecimal standPrem;

    /** 缴费年期 */
    @Excel(name ="缴费期间")
    private String chargePeriodValue;


    /** 投保人姓名   */
    @Excel(name ="投保人姓名")
    private String applicantName;

    /** 被保人姓名   */
    @Excel(name ="被保人姓名")
    private String insurantName;

    /** 投保日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date applyDate;

    /** 投保日期 */
    @Excel(name ="投保日期")
    private String applyDateStr;

    /** 承保日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date insureDate;

    /** 承保日期 */
    @Excel(name ="承保日期")
    private String insureDateStr;

    /** 撤单日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date cancelDate;

    /** 保单生效日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date effectiveDate;

    /** 保单生效日期 */
    @Excel(name ="生效日期")
    private String effectiveDateStr;

    /** 客户回执签收时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date custAckDate;

    /** 客户回执签收时间 */
    @Excel(name ="回执日期（签收）")
    private String custAckDateStr;

    /** 回执录入时间(回执录入系统时间) */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date ackDate;

    /** 回执录入时间(回执录入系统时间) */
    @Excel(name ="回执日期(录入)")
    private String ackDateStr;

    /** 终止日期 */
    @Excel(name ="终止日期")
    private String endDateStr;

    /** 终止原因 */
    private String endCauseNote;

    /** 撤单日期 */
    @Excel(name ="撤单日期")
    private String cancelDateStr;

    /** 撤单原因 */
    private String cancelCauseNote;

    /** 终止日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date endDate;

    /** 客户回访日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date revisitDate;

    /** 客户回访日期 */
    private String revisitDateStr;

    /** 保单失效日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date expiredDate;

    /** 保单失效日期 */
    private String expiredDateStr;


}
